With rapid growth of information and/or data transfer over a high-speed communication network such as 3G or 4G cellular services, managing and controlling such data transfer become increasingly difficult and complicated. To handle large amount of network traffic, a conventional network layout employs one or more communications networks such as Internet, LAN (local area network), and/or wireless networks having various network devices such as access switches, routers, and bridges to facilitate data delivery from source to destination.
A large number of network communication devices such as switches and routers typically contain one or more processors, microprocessors, central processing units (“CPUs”), network processors (“NPs”), processing engines (“PEs”), and the like. A function of a processor is to execute instruction based on its hardware design as well as loaded or installed software. A problem associated with network devices is that network devices may go down for various reasons, such as, but not limited to, system maintenance, system failures, system overloading, system upgrades, and the like.
A drawback, however, associated with conventional software upgrade or modification on a network device is that it typically requires the device to stop operation and then upgrade its software. After upgrading or reinstalling new software, system or device rebooting is generally required. During system reinstallation and/or reboot, the device typically cannot provide network service whereby rendering network outage. Such network outage relating to a network system or device can negatively affect overall network performance.
To improve network performance, a technique of in-service software upgrade using virtual machines (“VMs”) is introduced. For example, while one VM is configured to continue providing normal network services, another VM is upgraded with the new code. A virtual machine (“VM”), by its nature, typically performs well within its own “sandbox” environment. The performance of VM, however, typically degrades when the VM requires communicating with other VMs.